function It(){
	this.binded=[];
	this._=undefined;
	this.afterChange=undefined;
	this.value=function(newValue){		
		if(newValue!=undefined){
			var cache=[];
			this.setForEachBindedItem(newValue,cache);
			return this;
			}
		else return this._;
		};
	this.bind=function(it){
		if(!arrayContains(it,this.binded))this.binded.push(it);
		if(!arrayContains(this,it.binded))it.binded.push(this);
		this.value(it.value());		
		return this;
		};
	this.unbind=function(it){
		if(it==undefined){
			var cnt=this.binded.length;
			for(var i=0;i<cnt; i++){
				if(this.binded.length>0)this.unbind(this.binded[0]);
				}
			}
		else{
			removeFromArray(it,this.binded);
			removeFromArray(this,it.binded);
			}
		};
	this.doAfterChange=function(){
		if (this.afterChange!=undefined)this.afterChange();
		}
	this.setForEachBindedItem=function(newValue,cache){		
		if(this._!=newValue){
			this._=newValue;
			//adjust();
			cache.push(this);
			for(var i=0;i<this.binded.length;i++){
				if(!arrayContains(this.binded[i],cache)){
					this.binded[i].setForEachBindedItem(newValue,cache);
					}
				}
			cache.pop();
			this.doAfterChange();
			}
		};
	}